User experience for multiple simultaneous connections on an instant messaging program

ABSTRACT

Methods, computer-readable storage media, and systems for establishing multiple simultaneous connections on an instant messaging program to enhance the user experience. The user receives notifications of request to communicate, an email, or an alert on communication devices. By choosing which communication device to respond on, that particular communication device becomes active, continuing the communication to transmit to and receive from on that communication device. The process also includes mirroring the communication on the other communication devices that are alive (connected) and non-mobile. Furthermore, the other communication devices are kept alive to allow the user to switch from one communication device to another during communication.

TECHNICAL FIELD

The subject matter relates generally to an instant messaging (IM)program, and more specifically, to a user experience with multiplesimultaneous connections on the instant messaging program.

BACKGROUND

An IM program may offer a user access to multiple IM connections onseveral communication devices (e.g., a personal computer or a mobilecellular phone). Typically, these multiple connections may require theuser to log in every time on the various communication devices. Themultiple connections on the IM program present many challenges for usersin managing and maintaining all of the connections. For example, the IMprograms may provide connections to twelve devices, creating havoc onkeeping track of the connections on all the devices.

Furthermore, instant messages may appear on a device that is logged onto an IM program, but is not actively participating in the IM.Unfortunately, an individual using the “inactive” device may view theinstant messages without the user's permission. Even within the IMprogram, there is little indication of knowledge and control of themultiple connections. Thus, existing IM programs that provide multipleconnections are not up to the tasks of developing a user interface incontrolling the connections, monitoring all the devices that are loggedon, and ensuring privacy of the user.

To further illustrate the problems of multiple connections, the user mayreceive repetitive instant messages on several communication deviceslogged on the system and may have to pay for instant messages sent to amobile device. As a result, the user experience is often frustrating,such as viewing repetitive instant messages and having to close theinstant messages separately on each communication device. The problem ofinstant messages on a mobile device has not been addressed. Thus, theinstant messages may unnecessarily be sent to the mobile device, whichcan be very expensive and reduce or drain the battery power of themobile device. Consequently, existing IM programs have not found a wayto control the multiple communications transmitted to or received on thecommunication devices and in particular to a mobile device.

Multiple connections provide an aggregated view of a user's presence,Multiple Points of Presence (MPOP), but these programs and systems fallshort in keeping the multiple connections “alive” or connected to theprogram. This is troublesome since the user may desire to switchcommunication from one device to another device. Thus, these multipleconnections on instant message programs have not provided a satisfyinguser experience.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

In view of the above, this disclosure describes establishing multiplesimultaneous connections on a program or service to enhance a userexperience. The user interface and the multiple simultaneous connectionson communication devices associated with the user improve the efficiencyand convenience of logging on, logging out, and monitoring connectionson the communication devices for any communication device, locally orremotely. Also, the user interface for multiple simultaneous connectionsallows the user to control and to maintain privacy of the communication.

The messenger server will establish multiple simultaneous connectionsfor the communication devices of the user, which has a user interface toissue a notification to indicate a request for communication, a newsalert, an email, or any type of alerts to the communication devices. Byresponding on a particular communication device, the user will cause thecommunication to transmit to that particular communication device, whichis considered “active” at the desires of the user. To further increasethe user experience, the resultant communication transmitted to orreceived from the active device may be replicated to the othercommunication devices to not miss any communication. To cater to themobility needs of the user, the multiple simultaneous connections arekept “alive” or connected, enabling the user to switch from one deviceto another device without having to discontinue the communication or login every time.

BRIEF DESCRIPTION OF THE DRAWINGS

The Detailed Description is set forth with reference to the accompanyingfigures. The teachings are described with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference numbers in different figures indicates similaror identical items.

FIG. 1 is an overview block diagram of an exemplary instant messagingenvironment.

FIG. 2 is a block diagram of an exemplary instant messaging system.

FIG. 3 is a block diagram showing an exemplary messenger server of thesystem of FIG. 2.

FIG. 4 is block diagram of an exemplary multiple simultaneousconnections to enhance the user experience of the system of FIG. 2.

FIG. 5 is a block diagram of an exemplary algorithm for notifying andresponding on a non-mobile device of the system of FIG. 2.

FIG. 6 is a flowchart showing an exemplary algorithm for notifying andresponding on a mobile device of the system of FIG. 2.

FIG. 7 is a flowchart showing an exemplary process for notifying andresponding on a mobile device of the algorithm of FIG. 6.

FIG. 8 is a schematic showing an exemplary user interface for signing inof the system of FIG. 2.

FIG. 9 is a schematic showing an exemplary user interface for privacyoptions of the system of FIG. 2.

FIG. 10 is a schematic showing an exemplary user interface forinteractive options of the system of FIG. 2.

DETAILED DESCRIPTION

Overview

This disclosure is directed to multiple simultaneous connections on aprogram or service, and is shown and described in the context ofenhancing a user experience. This enhancement is accomplished throughuser interfaces, user interactions, servers, and system responses. Theuser interface for the multiple simultaneous connections allows the userto maintain and to control connections on the communication devices andto ensure privacy. The user is aware of which communication devices areconnected to the program. A benefit to the user is that signing in orlogging on to an IM program on a new communication device will not causethe other communication devices to sign out or log off the program.Furthermore, the user interface ensures the user options for privacy bychoosing to hide instant messages on a communication device that is notactively participating in the communication.

In one aspect, an algorithm, known as a non-mobile algorithm, respondsto the notification requesting communication, email, or alerts. Thenon-mobile algorithm constructs a state diagram for sending thenotifications, emails, or alerts to the communication devices that arelogged into an IM program. If the user responds on the non-mobiledevice, the communication continues to transmit to and receive from thenon-mobile device, in the active mode.

In another aspect, another algorithm, known as a mobile algorithm,responds to the notification requesting communication, email, or alert.The mobile algorithm constructs a state diagram for sending thenotifications or alerts to the communication devices that are loggedinto an IM program. If the user responds on the mobile device, thecommunication continues to transmit to and receive from the mobiledevice, which is in the active mode.

In another aspect, another algorithm, known as switching algorithm,responds to the user switching communication from one communicationdevice to another device. The switching algorithm constructs a statediagram for sending the notifications, emails, or alerts to thecommunication devices that are logged into an IM program. For example,the user responds on a first device continuing the communication totransmit to and receive from the first device, which is in the activemode. To further enhance the user experience, the multiple simultaneousconnections are alive, enabling the user to switch from onecommunication device to another device without having to discontinue thecommunication or logging back into the program.

Thus, the user interface and the multiple simultaneous connections onthe IM program vastly improve the efficiency and convenience of the userexperience. The user experience for multiple simultaneous connectionsdescribed herein are not limited to any particular application ornetwork, but may be applied in many contexts and environments. By way ofexample and not limitation, the user experience for multiplesimultaneous connections may be employed in IM programs, IM services, IMnetworks, programs, applications, networks, and the like. For example,the user experience on different communication devices with multiplesimultaneous connections could be used in .NET Messenger Service, MSN®Messenger, Windows Live™, Windows Live™ Messenger, Windows Mobile®,Windows®, and Windows Vista™.

Exemplary Instant Messaging Environment

FIG. 1 is an overview block diagram of an exemplary instant messaging(IM) environment 100 for providing IM access. A user 102 withcommunication devices 104 may access IM through an application program106 or a service 108. IM provides real-time communication, which meanscurrent or actual communication between two or more users or supportsasynchronous communication like offline messages. The term “user” 102,and “consumer” may be used interchangeably to describe a person or anentity using a communication device and/or a person or an entitysubscribing to a program or service. The programs 106 or the services108, include technology resources, which include access to the web,databases, email, file sharing, voice, video, games, software programs,and the like.

Communication devices 104 that are suitable for use, include but are notlimited to, a cellular phone 104(a), a personal digital assistant104(b), a personal computer 104(c), and the like. These various types ofcommunication devices 104 in operation with the programs 106 or theservices 108 enable the user 102 to conduct an activity, such ascommunicating with others, transmitting or receiving data, text, video,audio, email, accessing web pages for information, accessing sharedfolders, or files, sharing information with others, and the like. Theuser 102 may access the application 106 or service 108 for work relatedpurposes or for personal use. The terms application and program are usedinterchangeably to describe capabilities that allows the user 102 accessto real-time communication, such as IM, or asynchronous communicationlike offline messages. For example, the program or application may bedownloaded onto the user's communication devices 104.

Shown in FIG. 1, is an exemplary implementation of a messenger server110(a) implementing the IM application 106 or IM service 108 on anetwork or an IM network (not shown). A mobile server 110(b) may beincluded to help manage the mobile communication devices working incooperation with the messenger server 110(a). The network or the IMnetwork may be defined as hardware, software, and media connectinginformation technology resources. Typically, networks or IM networks areformed by connecting clients, servers, a number of other components likerouters, switches, and the like through a communication media. FIG. 3discusses the messenger server 110(a) in more detail.

Illustrated in FIG. 1 is the messenger server 110(a) that provides theprogram 106 or the service 108 to the communication devices 104 of theuser 102, to communicate in real-time or support asynchronouscommunication like offline messages with one or more computing devicesof individuals. The computing devices, may include, but are not limitedto a personal computer 120, a file server 122, a management server 124,a web server 126, a database server 128, and the like. These devices maybe associated with individuals known as user 130(a), 130(b), . . .130(n) or with other individuals, businesses, education facilities,government associations, hospitals, and the like.

Turning to FIG. 2, this figure illustrates an exemplary system 200 forimplementing the IM program of multiple simultaneous connections toenhance the user experience. The system 200 illustrates architecture ofsome components on a client side 202 and a server side 204.Alternatively, these components may reside in multiple other locations.For instance, all of the components of FIG. 2 may exist on the clientside 202. Furthermore, two or more of the illustrated components maycombine to form a single component at a single location.

The client side 202 includes communication devices 104 to providereal-time communication or support asynchronous communication likeoffline messages on the system 200. The term “communication device”means a device allowing the user 102 to interact with an electronicinformation system or the like. The communication devices 104 includebut are not limited to, a cellular phone 104(a), a personal digitalassistant (PDA) 104(b), a personal computer 104(c), a laptop computer104(d), a desktop computer 104(e), a workstation 104(f), or othersimilar devices. The devices 104 that are considered non-mobile, includethe personal computer 104(c), the laptop computer 104(d), the desktopcomputer 104(e), and the workstation 104(f). The devices 104 that areconsidered mobile, include the cellular phone 104(a), the PDA 104(b),and the laptop computer 104(d).

As illustrated, the server side 204 of the system 200 includes an IMprogram 106, an IM service 108, a messenger server 110(a), and a mobileserver 110(b). Shown are two options of providing IM access, the program106 and the service 108, which are merely examples and are not to belimiting. The user 102 downloads the IM program 106 from an IM providerto the communication devices 104. The user 102 may access the IM service108 through a web service provider or web browser without having todownload software. This is advantageous when accessing IM through apublic facility, such as the library, employer's computer, communicationdevices with limited memory capacity, and the like. Having described themessenger server 110(a) and the mobile server 110(b) as separateentities, a single messenger server may serve both functions.

FIG. 2 specifically illustrates the messenger server 110(a) and themobile server 110(b) on the server side 204 communicating via a network206 with the communication devices 104 on the client side 202. Thenetwork 206 may include the Internet, a Local Area Network (LAN), a WideArea Network (WAN), a wireless network, business WiFi LANs, home WiFiLANs, public WiFi hotspots, WiMAX wide area networks, cellulartechnologies, and/or the like. Also, the cellular devices function ineither unlicensed wireless or licensed cellular technologies, such asunlicensed IEEE 802.11 wireless networking standard and licensedcellular technology, such as global system for mobile communications(GSM) or code division multiple access (CDMA).

In an exemplary implementation, the user 102 may use the laptop computer104(d) at home by accessing a WiFi LAN located in his or her home. TheWiFi LAN may enable the user 102 to access a broadband data service,such as Digital Subscriber Line (DSL) service, satellite Internetservice, or cable modem service.

Messenger Server

FIG. 3 illustrates example components, denoted generally at 300, withinthe messenger server 110(a) of FIG. 2 in more detail. The messengerserver 110(a) may be configured as any suitable computing device capableof implementing an IM program 106 or service 108 with multiplesimultaneous connections. In one exemplary configuration, the messengerserver 110(a) comprises at least one processing unit 302 and memory 304.The processing unit 302 may be implemented as appropriate in hardware,software, firmware, or combinations thereof. Software or firmwareimplementations of the processing unit 302 may include computer- ormachine-executable instructions written in any suitable programminglanguage to perform the various functions described.

Memory 304 may store programs of instructions that are loadable andexecutable on the processor 302, as well as data generated during theexecution of these programs. Depending on the configuration and type ofcomputing device, memory 304 may be volatile (such as RAM) and/ornon-volatile (such as ROM, flash memory, etc.). The messenger server110(a) may also include additional removable storage 306 and/ornon-removable storage 308 including, but not limited to, magneticstorage, optical disks, and/or tape storage. The disk drives and theirassociated computer-readable media may provide non-volatile storage ofcomputer readable instructions, data structures, program modules, andother data for the communication devices.

Turning to the contents of the memory 304 in more detail, may include anoperating system 310, one or more application programs 106 or service108 for implementing all or a part of the instant messaging program withmultiple simultaneous connections. In one implementation, the memory 304includes the IM program 106 including a user interface module 312 and adata management module 314. The user interface module 312 includes butis not limited to, presenting the user with a user interface for the IMprogram to sign or sign out of the program, to prompt the user toindicate presence, to illustrate messages are on hold or not shown, andto display connected and disconnected communication devices 104. Thedata management module 314 stores and manages storage of information,such as profile information, contact information, display picture,sounds, communication devices of the user 102, and the like, and maycommunicate with one or more local and/or remote databases or services.

The memory 304 further includes a presence module 316 and a datamanagement module 318. The presence module 316 may identify signing inand out of the IM program 106, the status of the user 102, and the like.The endpoint management module 318 includes but is not limited to,tracking a state of the different communication devices 104, signing inand out of the IM program 106, and the like. The endpoint managementmodule 318 interacts with the presence module 316 and the data storagemodule 314 to perform connections, disconnections, search functions,such as performing searches to identify the communication devices thatare logged on, logged off, state of the communication devices, thestatus of the user 102, and the like.

Computer storage media includes volatile and non-volatile, removable andnon-removable media implemented in any method or technology for storageof information such as computer readable instructions, data structures,program modules or other data. Memory 304, removable storage 306, andnon-removable storage 308 are all examples of computer storage media.Additional types of computer storage media that may be present include,but are not limited to, RAM, ROM, EEPROM, flash memory or other memorytechnology, CD-ROM, digital versatile disks (DVD) or other opticalstorage, magnetic cassettes, magnetic tape, magnetic disk storage orother magnetic storage devices, or any other medium which can be used tostore the desired information and which can accessed by the messengerserver 110(a) or other computing device.

The messenger server 110(a) may also contain communicationsconnection(s) 320 that allow the messenger server 110(a) to communicatewith the mobile server 110(b), the user terminals, and/or other deviceson the network 206. Communications connection(s) 320 is an example ofcommunication media. Communication media typically embodies computerreadable instructions, data structures, and program modules. By way ofexample, and not limitation, communication media includes wired mediasuch as a wired network or direct-wired connection, and wireless mediasuch as acoustic, RF, infrared and other wireless media. The termcomputer readable media as used herein includes both storage media andcommunication media.

The messenger server 110(a) may also include input device(s) 322 such asa keyboard, mouse, pen, voice input device, touch input device, etc.,and output device(s) 324, such as a display, speakers, printer, etc. Themessenger server 110(a) may include a database hosted on the messengerserver 110(a) include, but is not limited to, a contact list, profileinformation, display name, display picture, mobile phone number, networkaddresses, list of the communication devices 104, and the like. Allthese devices are well known in the art and need not be discussed atlength here.

Multiple Simultaneous Connections with Mirroring

FIG. 4 is a block diagram illustrating mirroring of the communicationand establishing multiple simultaneous connections 400 for implementingthe exemplary IM system of FIG. 2. The solid lines extending from theuser 102 indicate signing in or logging on to the messenger server110(a) to establish the multiple simultaneous connections. The user 102signs on to the IM program 106 with the communication devices 104, whichmay also be referred to as endpoints. The system 200 enhances the userexperience by allowing the user 102 to log on or sign in to onecommunication device 104 without logging off or signing out of anothercommunication device 104. In an exemplary implementation, the multiplesimultaneous connections will transmit communication to all of the alivenon-mobile communication devices to ensure the user 102 will not missany messages.

In an exemplary implementation, the user 102 signs in on a desktopcomputer 104(e) at home. The cellular phone 104(a) automatically signsin to the IM program 106 upon activating the communication device 104,without signing off the user 102 from the desktop computer 104(e). Thus,the user 102 may respond on the desktop computer 104(e) or the cellularphone 104(a).

In an exemplary implementation, when the user 102 signs in a secondcommunication device 104 to the IM program 106, by default, the messagesand notifications sent to the first communication device will be put onhold. In another implementation, the user 102 may decide to not putmessages on hold. The messages and notifications will continue totransmit to the first device but the windows are hidden and the soundsassociated with receiving IM are muted. Thus, the user 102 may protectthe privacy of the communication and avoid annoying sounds and popupsfor a person using the first communication device, such as the desktopcomputer 104(e).

Once the user 102 signs in or logs on a new communication device 104 tothe IM program 106, a notification of a new connection alerts the user102. This new connection is included on a list of the communicationdevices 104 connected on the IM program 106. Thus, the user 102 maymonitor and control the connections of the communication devices 104,remotely and locally. An added benefit is that the user 102 maydisconnect the communication device 104 remotely.

Notifications sent to the user 102 include but are not limited to, arequest for communication, alert, email, sports scores, news alerts, andother types of contents. The notifications may further include ringtones, audible notifications, or visual indications. The term“approximately” indicates that the notifications may arrive at two ormore communication devices 104 at slightly different times, owing todevice capabilities, network conditions, geographical factors affectingthe different devices, and the like. The messenger server 110(a) sendsor issues notifications for the request for communication, email, oralert to the communication devices 104 signed or logged into the IMprogram. Once the user 102 responds on a particular communicationdevice, the communication continues to transmit to that particularcommunication device, which is considered in the “active” mode andparticularly, at the desires of the user 102.

To ensure the user 102 does not miss any communication, the messengerserver 110(a) replicates or mirrors the resultant communicationtransmitted to or received from the active communication device to theother non-mobile communication devices. For illustrative purposes, thesolid lines illustrate the communication replicated or mirrored on thenon-mobile communication devices. For example, the user 102 responds onthe laptop computer 104(d), so communication may be replicated ormirrored from the laptop computer 104(d) (in the active mode) to thepersonal computer 110(c) to the workstation 104(f) and to the desktopcomputer 104(e). This may vary depending on which communication devices104 are in the active mode and which communication devices 104 aresigned into the IM program. This is for illustration purposes only asthere is no particular order.

In an exemplary implementation, the presence and communication issynchronized across all the communication devices 104. The user 102signs on and the presence information is kept in synchronization acrossall the endpoints, enabling the users 130(a) . . . 130(n) to monitor theuser's presence. Also, the synchronization allows the user 102 toretrieve information, files, audio, and the like on a non-mobile devicethat was initially sent to the mobile device.

In FIG. 4, the dashed lines illustrate the communication from thenon-mobile communication devices that may be mirrored or replicated toand from the mobile devices. The dashed lines indicate the communicationmay be replicated or mirrored when the user 102 responds on the mobiledevice. For example, the user 102 responds on cellular phone 104(a), thecommunication will be replicated to the non-mobile devices.

However, if the user 102 chooses to not respond on the mobile device andresponds on the non-mobile device, the communication transmitted to andfrom the non-mobile communication devices will not be replicated ormirrored to the mobile devices. This is to prolong battery power of themobile device and to not incur expenses for use of the mobile device.Thus, the messenger server 110(a) will not replicate or mirror thecommunication on the mobile device. However, the connection is keptalive on the mobile device. Furthermore, the user 102 may retrieve ahistory of the communication transmitted on the non-mobile communicationdevices, by selecting an option on the mobile device. FIGS. 6 and 7 willdiscuss this in more details.

In an exemplary implementation, the user 102 may sign in to threecommunication devices, such as the mobile phone 104(a), personalcomputer 104(c), and laptop computer 104(d), and receive notification ofrequest for communication, email, or alerts on these communicationdevices. Assuming the user 102 receives notifications, for example, onall three communication devices, the messenger server 110(a) sends thenotifications to the number for the mobile phone 104(a) and theidentified network addresses for the personal computer 104(c) and thelaptop 104(d).

In an exemplary implementation, the user 102 may access IM on the laptopcomputer 104(d) or the desktop computer 104(e) while away from home orthe office. By way of illustration, the user 102 may access his or herown desktop computer 104(e) remotely, without being in or near theoffice. In another example, the user 102 may close a conversation on onecommunication device 104, which will close conversation on all of thecommunication devices 104. This makes it more efficient for the user 102in not having to view repetitive messages and having to close eachconversation on all of the communication devices 104.

Responding to Notification

FIGS. 5-7 illustrate exemplary ways in which the user 102 associatedwith the communication devices 104 may respond to the notification torespond, the alert, or email. For convenience only, the process flowsare described in connection with certain components shown in FIGS. 2 and4. However, it is understood that the process flows may be performedwith other components without departing from the spirit and scope of thedescription. These processes highlight additional actions facilitated byresponding, and do not replace the multiple simultaneous connectionsprotocol 400. Instead, the processes of FIGS. 5-7 may be utilized inconjunction with and in addition to process 400.

FIG. 5 illustrates an exemplary process 500 for responding to thenotification to request communication, email, or alert. An algorithm,known as a non-mobile algorithm, sends a notification from the messengerserver 110(a), on the server side 204 and waits for a response to thenotification requesting communication, email, or alert. As mentionedpreviously, the mobile server 110(b) may be included as a separatecomponent. The non-mobile algorithm constructs a state diagram forsending the notifications or alerts to the communication devices 104,located on the client side 202. If the user 102 responds on thenon-mobile device, the communication continues to transmit to andreceive from the non-mobile device, which is in the active mode.

This algorithm 500 is described with reference to the desktop computer104(e), the personal computer 104(c), and the PDA 104(b), while otherdevices may similarly utilize this process. Shown at Notifications 502,represent the messenger server 110(a) sending or issuing notificationsof a request to respond to a communication invitation, email, or alertto the three communication devices, that are signed in to the program106. At Respond 504, represents the desktop computer 104(e) sending aresponse to the messenger server 110(a), to respond to the invitationrequest, alert, or to receive email on the desktop computer 104(e).

Illustrated at Not Respond 506, the personal computer 104(c) connectionis kept alive, but is not active, due to not responding. Shown at NotRespond 508, represents the PDA 104(b) not responding to the messengerserver 110(a) to the request to communicate, alert, or to receive emailon the PDA 104(b). Again, the connection for the PDA 104(b) is keptalive.

In an exemplary implementation, the PDA 104(b) does not respond to thenotification, the PDA 104(b) will display a message informing the user102 that the communication was answered on another communication device104, also referred to as another endpoint. Furthermore, the user 102 hasan option to resume the communication on the PDA 104(b) by takingfurther action. In another example, the user 102 may query the lastseveral messages sent to the desktop computer 104(e), and choose toresume the communication on the PDA 104(b) after reviewing the history.

At Mirror 510, represents the communication sent to the active desktopcomputer 104(e) is replicated or mirrored to the personal computer104(c), which is signed in or logged on, but is not actively used toparticipate in the communication and is a non-mobile device. Replicatingor mirroring communication comprises receiving notifications,transmitting and receiving communication or instant messages, changingpresence information, changing profile information, changing contactlist, changing group information, and opening and closing a conversationon the active device is mirrored on the other one or more non-active andnon-mobile devices associated with the user 102. The mirroring improvesthe efficiency and convenience for the user 102, who does not viewrepetitive messages or need to close conversations on each communicationdevice 104 signed or logged into the system 200.

FIG. 6 illustrates a process 600 for responding to the notification torequest communication, the email, or the alert. An algorithm, known as amobile algorithm, responds to the notification requesting communication,email, or alert. The mobile algorithm constructs the state diagram forsending the notifications or alerts to the communication devices 104located on the client side 202. If the user 102 responds on the mobiledevice, the communication continues transmitting to and receiving fromthe mobile device, which is in the active mode.

This algorithm 600 is described with reference to the desktop computer104(e) and the PDA 104(b), while other devices may similarly utilizethis process. Shown at Notifications 602, represent the messenger server110(a) on the server side 204 sending the notifications of the requestto respond to the communication invitation, email, or alert. The mobileserver 110(b) may be included with the messenger server 110(a) on theserver side 204. By way of illustration, the desktop computer 104(e) andthe PDA 104(b) may receive this notification.

Shown at Not Respond 604, represents the desktop computer 104(e) notresponding to the messenger server 110(a) to the communication request,to receive email, or alert on the desktop computer 104(e). However, theconnection is kept alive on the desktop computer 104(e).

At Respond 606, represents the PDA 104(b) responding to the messengerserver 110(a) to the request for communication, to receive email, or thealert on the PDA 104(b). The communication will continue to transmit toand receive from the PDA 104(b).

At Mirror 608, represents the communication sent to the active device,the PDA 104(b), is replicated or mirrored to the inactive and non-mobiledevice, the desktop computer 104(e). Thus, the replicating or themirroring of the communication allows the user 102 to close thecommunication without viewing repetitive messages and to ensure thecommunication is sent to the alive communication devices, in order tonot miss any messages. Also, the user 102 may be able to retrieve filesor email later on the non-mobile device, the desktop computer 104(e), ifthe user 102 initially received the file or video when the user 102 wascommunicating on the PDA 104(b), in the active mode.

In an exemplary implementation, the user 102 may be activelyparticipating in a conversation on the desktop computer 104(e). Themessenger server 110(a) sends notifications of incoming new messages,emails, or alerts to the PDA 104(b) only when there is no activity onother non-mobile devices, based on the user's profile.

Similar to the algorithms described above, a switching algorithm,describes how the user 102 may switch communication from a firstcommunication device to a second communication device. The switchingalgorithm constructs a state diagram for sending the notifications oralerts to the communication devices 104 that are logged on to the IMprogram 106. The user 102 responds on the first device, thecommunication is transmitted to and received from the first device,which is in the active mode. To further enhance the user experience, themultiple simultaneous connections are kept alive, enabling the user 102to switch from the first device to the second device without having todiscontinue the communication.

In an exemplary implementation, the user 102 may sign into threecommunication devices, the mobile phone 104(a), the personal computer104(c), and the laptop 104(d), receive notifications of request forcommunication, email, or alert on these communication devices. Forexample, the user 102 responds on the personal computer 104(c) and wantsto switch to the laptop computer 104(d) in order to be mobile. As thelaptop computer 104(d) is alive, the user 102 may easily activate thelaptop computer 104(d) to start transmitting and receivingcommunication. Thus, this enhances the mobility features for the user102.

FIG. 7 illustrates a process flow 700 for responding to the notificationto request communication, email, or alert on the mobile device of FIG.6. For ease of understanding, FIG. 7 shows various aspects of the method700 within separate blocks. However, FIG. 7 shows these blocks in theorder presented only for convenience, but not for limitation.Implementations of the processing represented in these blocks mayperform this processing in any order, without departing from the scopeand spirit of the description.

In addition, implementations of the process flow 700 may combine orfurther subdivide any number of the described process blocks. Moreover,implementations of the process flow 700 may omit one or more of thedescribed blocks. For convenience only, the process flow 700 isdescribed in connection with certain components shown in FIGS. 2, 3, and6. However, it is understood that the process flow 700 may be performedwith other components without departing from the spirit and scope of thedescription.

Block 702 represents the messenger server 110(a) establishing multiplesimultaneous connections when the user 102 logs on to the IM program 106or IM service 108. Once signed in, multiple points of presence (MPOP) ofthe communication devices 104 will be available to show the list to theuser 102 and to synchronize the presence information of the user 102across all endpoints. By way of illustration, the desktop computer104(e) and the PDA 104(b) are the non-mobile and mobile communicationdevices, respectively. This presence information may include, forexample, the communication devices that are active and alive, the statusof the user 102, friendly name, personal status message (PSM), displaypicture, network addresses, cellular numbers, and the like.

Block 704 represents issuing or sending notifications of request tocommunicate, email, or alert from the messenger server 110(a) throughthe IM program 106 or the IM service 108. By way of illustration, thedesktop computer 104(e) or the PDA 104(b), may receive notificationsfrom the messenger server 110(a) based on the user's profileinformation, the active and alive modes of the communication devices 104and a number/a network address for the communication devices 104. Themessenger server 110(a) is one example, but other services or one ormore servers relating to the IM program may be connected to anapplication server to send this notification.

Additionally, distinctive alert or tones may accompany the transmissionin blocks 704 to distinguish the notifications as a request, an email,an alert, or an urgent message. These types of notifications may furtherinclude audible notifications, visual indications, vibrations, and thelike, depending on the communication devices and the user's profile.

Block 706 represents receiving a response from the user 102 in responseto the request, email, or alert. Block 708 represents a decision for theuser 102, whether to respond on the mobile device, the PDA 104(b). Ifthe conditions to the notification conditions are satisfied, then theprocess flow may take Yes branch 710 to block 712 to continue or to sendthe communication to this mobile device, PDA 104(b). Being in the activemode indicates communication is transmitted to or received on thismobile device.

From block 712, the process flow may proceed to block 714, where thecommunication is transmitted to the non-mobile devices. Only thenon-mobile devices that are alive will receive communication transmittedon the mobile device. Thus, the communication to the mobile device, PDA104(b) is replicated or mirrored to the non-mobile devices.

Furthermore, blocks 712 and 714 may be transmitted over one or morenetworks, as the mobile communication device passes into the proximityof other networks. The process flow 700 may transmit the notificationover a circuit-switched network and/or a packet-switched network.

Returning to block 708, which represent the decision whether to respondto the notification on the PDA 104(b). If the conditions to respondingon the mobile device are not satisfied, then the process flow may takeNo branch 716 to block 718. Block 718 represents the non-mobile deviceresponding to the notification and the communication transmitting to thenon-mobile communication device, the desktop computer 104(e). Asmentioned, the user 102 may be able to retrieve files or video later onthe non-mobile devices, such as the desktop computer 104(e), when theuser 102 initially received the file or video while the PDA 104(b) wasin the active mode. However, once the user 102 responds to theinvitation for a video file on one communication device, the otherinvitations may be cancelled.

Block 720 illustrates the connection is kept alive on the mobile device,the PDA 104(b), even though the user 102 did not respond on that device.By keeping the connection alive, the user 102 may switch from thedesktop computer 104(e) to the PDA 104(b) while continuing thecommunication.

Exemplary User Interface

FIGS. 8-10 illustrate an exemplary user interface usable with the IMsystem of FIG. 2. FIG. 8 shows an options interface 800, which allowsthe user to sign in to the system. Specifically, the options interface800 includes a text-based sign in portion 802, which allows the user toenter general criteria, such as automatically running, opening, orshowing Windows Live™ Messenger, allow automatic sign in when connectedto the internet, and use the same display picture and personal message.The text-based sign in portion 802 is shown as a structured sign inform, but could additionally or alternatively include one or morefreeform sign in fields. The text-based sign in portion 802 is providedfor its ease and effectiveness at automatically running or signing theuser to Windows Live™ Messenger with the same display picture andpersonal message once the user 102 signs in.

Since at least some users 102 have clear preferences for multiplecommunication device features, the options interface 800 also includes asign in at more than one place portion 804. This allows the user 102 tosign in while maintaining control and privacy of the communication. Thetext-based sign in portion 802 and 804 are provided for its ease andeffectiveness at accurately recognizing signing in at more than oneplace, putting messages on hold, signing out and renaming this place,which is readily recorded in the data. For example, the user 102 haschosen “Keep me signed in here, but don't show my messages (put messageson hold)” option. Based on the text to the sign in interface 802 andsign in at more than one place 804, the system 200 signs in the user102. The options interface 800 includes, a text-based rename placeportion 806, illustrating how the user 102 may rename this place, suchas the log in location or the communication device.

In an exemplary implementation, the user 102 may sign in or log on froma first endpoint on the communication device to the application program106 on the server 110(a). The user 102 may sign in or log on withanother communication device to the first endpoint. Thus, the otherendpoints may connect to the first endpoint, rather than connectingdirectly to the server 110(a).

In another exemplary implementation, all the endpoints in a corporationcan connect to the server 110(a) through a smaller number of endpointswithin the corporation. Thus, connecting the endpoints this way has nodirect effect regarding the user 102.

FIG. 9 shows a privacy interface 900, which allows the user 102 todetermine messages are shown or on hold on the system 200. Specifically,the privacy interface 900 includes a text-based portion 902, which showsthe user 102 the messages are on hold. Thus, the user 102 may decide toresume or go for other options. The privacy interface 900 also includesa text-based portion 904 that illustrates the messages are not shownbecause the user 102 is signed in at another place. The user may selectresume, sign out, or get help.

Furthermore, the privacy interface 900 includes a text-based portion 906to illustrate the messages have been placed on hold. Thus, the user 102may prevent another individual from viewing messages on another alivecommunication device by not showing the messages or by holding thesemessages. Also, the user 102 may prevent sending annoying soundnotifications and hiding popup to the non-active communication device(used by the other individual).

FIG. 10 illustrates an IM options interface 1000, which allows the user102 to relate presence information, profile information, privacy, andsigning out on the system 200. Interface 1002 illustrates a displaypicture and a friendly name. In particular, the options interface 1000includes a presence portion 1004, which allows the user 102 to indicatepresence as online, busy, be right back, away, in a call, out to lunchor appear offline. The options interface 1000 also includes profileinformation 1006, such as changing display picture, changing signaturesound, and changing display name. Furthermore, there is an interfacesection 1008 where the user 102 may decide to put messages on hold orsign out from here. There are additional sign out such as signing outfrom here, from school, and from everywhere, as shown at interface 1010.

In an exemplary implementation, the user 102 may log off from oneendpoint without affecting the other endpoints. For example, the user102 may sign out from home while keeping the connections alive at schooland at work. Thus, the user experience is beneficial, satisfying, andefficient with the multiple simultaneous connections on the IM program.

The subject matter described above can be implemented in hardware, orsoftware, or in both hardware and software. Although the subject matterhas been described in language specific to structural features and/ormethodological acts, it is to be understood that the subject matterdefined in the appended claims is not necessarily limited to thespecific features or acts described above. Rather, the specific featuresand acts are disclosed as exemplary forms of implementing the claimedsubject matter. For example, the methodological acts need not beperformed in the order or combinations described herein, and may beperformed in any combination of one or more acts.

1. A method for multiple simultaneous connections on an instantmessaging program, implemented at least in part by a communicationdevice, the method comprising: establishing multiple simultaneousconnections for communication transmitted to or received fromcommunication devices associated with a user implemented on an instantmessaging program, wherein the communication devices comprise mobilecommunication devices and non-mobile communication devices; issuingnotifications to the communication devices: hiding windows and soundsassociated with receiving instant messages and notifications oncommunication devices that are not actively participating in thecommunication; when a response from the mobile communication device isreceived, the communication is transmitted to or received from themobile communication device that is in an active mode; mirroring thecommunication transmitted to or received from the mobile communicationdevice that is in the active mode to the other non-mobile communicationdevices; when a response from a first communication device is notreceived, the communication to be transmitted to the first communicationdevice is put on hold, such that the communication is not to betransmitted to the first communication device; when a response from asecond communication device is received, the communication istransmitted to or received from the second communication device that isin an active mode; indicating presence on the communication devices withmultiple points of presence, wherein the communication devices are insynchronization with each other; monitoring connections of thecommunication devices to the instant messaging program; anddisconnecting one of the communication devices from the instantmessaging program remotely.
 2. The method of claim 1, wherein themirroring communication comprises receiving notifications, transmittingand receiving instant messages, changing presence information, changingcontact list, changing group information, and opening and closing aconversation on an active device is mirrored on the other communicationdevices.
 3. The method of claim 1, further comprising keeping themultiple simultaneous connections alive or open to receive communicationor notifications.
 4. The method of claim 1, further comprising switchingcommunication from the first communication device to the secondcommunication device of the communication devices, as the connectionsare kept alive.
 5. The method of claim 1, further comprising sending anotification of a list of the communication devices connected to theinstant messaging program.
 6. The method of claim 1, further comprisingestablishing a connection to an instant messaging program or serviceimplemented on a web browser.
 7. The method of claim 1, furthercomprising retrieving a history of the communication transmitted to orreceived on the communication devices.
 8. A computer-readable storagedevice comprising computer-executable instructions that, when executedon a processor, perform the method as recited in claim
 1. 9. A systemfor establishing multiple simultaneous connections on an instantmessaging program, implemented by computer-executable instructionscomprising: a memory; a processor coupled to the memory for establishingmultiple simultaneous connections; the processor is configured to:establish multiple simultaneous connections for communication devicesassociated with a user to an instant messaging program, wherein theconnections indicate presence on the communication devices with multiplepoints of presence; issue notifications to the communication devices:hide windows and sounds associated with receiving instant messages andnotifications on the communication devices that are not activelyparticipating in the communication; when a response from a firstcommunication device that is a mobile communication device is received,communication is further transmitted to or received from the firstcommunication device that is in an active mode; wherein thecommunication is mirrored on non-mobile communication devices that areconnected to the instant messaging program; when a response from a firstcommunication device is not received, the communication that is to betransmitted to the first communication is put on hold in which thecommunication is not to be transmitted to the first communicationdevice; when a response from a second communication device is received,the communication is transmitted to or received from the secondcommunication device that is considered to be in an active mode; andsynchronize information between the communication devices logged on theinstant messaging program.
 10. The system of claim 9, further comprisinga user interface module configured to issue a notification of a list ofthe communication devices that are connected to the instant messagingprogram.
 11. The system of claim 9, further comprising a user interfacemodule configured to enable logging on or off from one communicationdevice without logging off the other communication devices.
 12. Thesystem of claim 9, further comprising an endpoint management moduleconfigured to maintain the simultaneous connections by keeping theconnections alive for communication or notifications transmitted to orreceived from the communication devices; the endpoint management modulefurther configured to keep the connections alive to enable switchingcommunication on the first communication device to the secondcommunication device.
 13. The system of claim 9, further comprising theprocessor configured to retrieve information transmitted initially tothe communication devices.
 14. The system of claim 9, further comprisingthe processor configured to encrypt the communication and informationtransmitted to or received on the instant messaging program.
 15. Acomputer-readable storage device comprising computer-executableinstructions that, when executed on a processor, perform the methods asrecited in the system of claim
 9. 16. A messenger server configured tomirror communication transmitted to or received from communicationdevices, the messenger server comprising: a memory; the messenger servercoupled to the memory which includes an instant messaging program;wherein the messenger server is configured to: issue notifications tocommunication devices; hide windows and sounds associated with receivinginstant messages and notifications on the communication devices that arenot actively participating in the communication; when a response from amobile communication device is received, transmit to and receivecommunication from the mobile communication device; mirror thecommunication transmitted to or received from the mobile communicationdevice to other non-mobile communication devices; when a response fromthe first communication device is not received, the communication thatis to be transmitted to the first communication is put on hold in whichthe communication is not to be transmitted to the first communicationdevice; when a response from a second communication device is received,the communication is transmitted to or received from the secondcommunication device that is in an active mode; indicate presence on theone or more devices with multiple points of presence, wherein presenceenables synchronization of the communication devices; and maintain thesimultaneous connections by keeping the connections alive or open,wherein the alive or open connection enables switching from a firstcommunication device to a second communication device to continue thecommunication.
 17. The messenger server of claim 16, further comprisingsigning in or signing off from one communication device will not affectthe status of the other communication devices.
 18. The messenger serverof claim 16, further comprising closing communication on onecommunication device will close communication on the communicationdevices logged in to the instant messaging program.